Integration Guide Yaskawa LS 1.5

This is the integration guide for Yaskawa robots with Locator Studio (LS) version 1.5 (Robot module version 1.5.0).

Prerequisites

  • Robot controller DX200, YRC1000 or YRC1000micro. For DX100 and FS100, contact the Help Center. NX100 and YRC Next (YNX) are not supported.

  • System software YBS 1.34 or newer (the most recent version is best).

  • MotoPlus option enabled.

  • Robot module files from the yaskawa/LS package: MotoPlus Binaries/<controller>/PhotoneoModule_LS_1.5.0.out, INFORM/<controller>/*.JBI and INFORM/<controller>/VARNAME.DAT.

See also Robot communication overview and Robot module support matrix.

1. Robot Controller Setup

1.1 IP Configuration

Start the robot controller in Maintenance Mode. To do this, hold the Main Menu button while you turn on the main switch. You hear a short beep during the boot. The figure below shows the Maintenance Mode screen:

Figure 1

Change the security level from Editing to Management Mode. Go to System → Security.

Figure 2

Select Management Mode from the list:

Figure 3

The password for Management Mode is 9999 9999 9999 9999 (16 x 9, without spaces):

Figure 4

Note

The three keys in the top status bar show that Management Mode is active.

To configure the IP address of the robot controller, go to System → Setup → Option Functions.

Figure 5

Select LAN Interface Setting to open the network configuration pane:

Figure 6

Select Manual Setting for the LAN2 port and change the IP address to match your network:

Figure 7

Note

We recommend that you connect the Ethernet cable to the LAN2 port.

Note

The subnet mask 255.255.255.0 is the same as a 24-bit subnet mask. See this table for more combinations: https://dnsmadeeasy.com/support/subnet

Example of a matching network configuration on the vision controller side:

  • Vision controller IPv4 address: 192.168.1.1 / 24

  • Robot controller IPv4 address: 192.168.1.2 / 24 (as configured in the previous step)

Figure 8

1.2 Enabling MotoPlus Functionality

If MotoPlus is not enabled on the robot controller yet, go to System → Setup → Option Functions.

Change the MOTOPLUS Func state from NOT USED to USED.

Figure 9

The MotoPlus APL icon is now visible in the left pane.

Open the MotoPlus Func. Settings:

Figure 10

Enable the MotoPlus autostart option:

Figure 11

1.3 Loading the MotoPlus Binary (.out)

The Photoneo Yaskawa interface consists of:

  • MotoPlus binary - PhotoneoModule_LS_1.5.0.out

  • INFORM files - request INFORM jobs + INFORM job templates + VARNAME.DAT

Use the .out file from the folder in MotoPlus Binaries (DX200, YRC1000, YRC1000u) that matches your robot controller type. Use the INFORM files from the folder with the same name in INFORM. Copy the file to the root directory of a USB flash drive.

To load the MotoPlus binary, do these steps:

Select MOTOPLUS Apl. → Load (User Application).

Figure 12

Select the PhotoneoModule_LS_1.5.0.out file and confirm Load. The Maintenance Mode part of the configuration is now complete.

Note

You can load only one Photoneo .out binary at a time. Check the File List to make sure that no other Photoneo MotoPlus binary is loaded. Then restart the robot controller in Normal Mode.

1.4 Loading the INFORM Jobs

Copy all INFORM jobs to the root directory of the USB flash drive. Go to Ex. Memory → Load and use Edit → Select all to select all jobs from the INFORM folder:

Figure 13

Press Enter to start the transfer:

Figure 14

All job files are now available in the robot controller.

1.5 Loading VARNAME.dat

The VARNAME.dat system file comes with the INFORM jobs. It contains the names of the variables that the Robot module uses. When you load this file, it erases all existing variable names and adds the Photoneo names.

Copy VARNAME.dat to the root directory of the USB drive. Go to Ex. Memory → Load.

Figure 15

Select System Data.

Figure 16

Select the VARIABLE NAME → VARNAME.DAT file from the list, press Enter and confirm the load.

Figure 17

After this operation, all variable comments are erased and the Photoneo variable names are added (BYTE, INTEGER, POSITION). The LS 1.5 module does not use string variables.

Figure 18

1.6 Setting the Vision Controller IP Address on the Robot Side

Next, tell the Yaskawa robot controller the IP address of the vision controller, as configured on the LS Network page. The first 4 integer variables are used for this:

Figure 19

The IP address in the first 4 integer variables must match the vision controller IP address on the LS Network page:

Figure 20

To check that the robot controller is physically connected to the vision controller and that the network is configured correctly, use the Ping function in System Info → Network Utility:

Figure 21

Type the IP address of the vision controller in the Host field and press the Execute button:

Figure 22

If the connection works, Ping returns an “OK” message for all 4 attempts. You can also use the Test Connection button on the Network page of the vision controller to ping the Yaskawa robot from the vision controller.

Figure 23

The result of Test Connection (ping command) is Robot Available or Robot Unavailable.

Figure 24
Figure 25

If the robot is unavailable, check the cables and the network settings on both sides, and try again. Make sure that the Ethernet cables are connected to the correct ports. If you use a switch, make sure that it does not block the connection.

1.7 USER COORDINATE Setup

For LS solution types (Localization and Delayering), we recommend that you keep the original Yaskawa Base frame as the origin for both calibration and picking. The Yaskawa Base frame origin is at the intersection of the J1 axis and the J2 axis plane (see the image below). For successful calibration and picking, all values of User Coordinate 1 must be zero.

Figure 26

We recommend that you name this user coordinate frame PHO_ZERO_OFFSET. This prevents robot programmers from using the frame for other purposes later. To do this, follow the steps below:

To select the user frame, press Robot → User Coordinate.

Figure 27

Select User Coordinate 1 from the list and name it PHO_ZERO_OFFSET.

To see the coordinate values, select the first frame and press Display → Coordinate Data.

Figure 28

Make sure that all values are zero, Robot R1 is selected and the Basic Coordinate frame is set to BASE.

Figure 29

This configuration gives you a zeroed Yaskawa Base user coordinate frame. This is important for correct calibration and picking.

Note

Integer variable I013 PHO_CAL_USER_FRM is reserved in the variable list, but this version of the module does not use it. The TCP pose sent to the vision controller (calibration, hand-eye scan, capture) is always read in User Coordinate 1. If this causes problems in your application, contact the Help Center for a customized module version.

1.8 TOOL Frame

Note

Tools are visible only if Setup → Teaching Conditions → Tool No Switch is set to Permit.

Figure 30

Calibration TOOL - for calibration, LS needs a zeroed tool frame. By default, TOOL 63 (the last one) is used. The module expects it to be all zeros. If TOOL 63 is zero, you do not need to change any coordinate values. We recommend that you give this tool a name, so that robot programmers do not use it later.

Figure 31

Picking TOOL - for picking, use a correctly configured and calibrated tool ID, as in any normal robot application.

Figure 32

Note

Integer variable I014 PHO_CAL_TOOL_FRM is reserved in the variable list, but this version of the module does not use it. The TCP pose sent to the vision controller is always read with Tool 63. If this causes problems in your application, contact the Help Center for a customized module version.

1.9 Robot State Server

The LS module has no Robot State Server. For calibration and hand-eye scans, the robot sends its pose together with the request. All communication runs over one connection from the robot to the vision controller on port 11003.

2. Robot Module

2.1 Request List

This section describes the requests that the Robot module supports. Use these procedures to control LS from an INFORM program. Every request job writes the request ID to I004 and sets B002. Then it waits for B003 (except PHO_SCAN_REQUEST_LOC). Action requests describes the meaning of each request.

INFORM job

Function

Request ID

Input

Populates

PHO_CALIB_ADD_POINT

Add calibration point request. Sends the current TCP pose (Tool 63, User Coordinate 1).

5

None

I007, I015

PHO_CHANGE_SOLUTION

Change solution request

9

I006

I007

PHO_START_SOLUTION

Start solution request

10

I006

I007

PHO_STOP_SOLUTION

Stop solution request

11

None

I007

PHO_GET_RUNNING_SOLUTION

Get running solution request

12

None

I007, I034

PHO_SCAN_REQUEST_LOC

Regular scan request. If I010 = 1 (hand-eye), the current TCP pose is sent with the request. Does not wait for the response.

19

I005, I010

None (use PHO_WAIT_FOR_SCAN)

PHO_WAIT_FOR_SCAN

Counterpart of the scan request (and of the last capture request in dynamic meshing)

-

None

I007

PHO_GET_POSES

Request the Cartesian poses of the localized objects

20

I005, I008, I011, I012

I007, I009, P011-P100, I024-I029

PHO_GET_STATUS

Get vision system status: number of localized objects, number of pickable objects, vision system status (running/finished)

22

I005

I007, I016, I017, I018

PHO_CALIB_START

Start calibration request

25

I005, I006

I007

PHO_CALIB_STOP

Stop calibration request

26

None

I007

PHO_CALIB_SAVE

Save calibration request at the end of calibration

27

I011, I012

I007, I015, P010

PHO_CAPTURE_REQUEST_LOC

Capture scan request for meshing. It does not start localization. Sends the current TCP pose and waits for the response (B003).

30

I005, B004, I031*

I007, B005

PHO_REUSE_SCAN_REQUEST_LOC

Reuse the last captured scan for localization on a different vision system

31

I005

I007

PHO_CHANGE_BBOX

Request to change the bounding box

33

I005, I032

I007

PHO_COM_CHECK

Request to check the communication

100

None

I007

I005 vision system ID, I006 solution ID, I007 error data, I008 number of requested poses, I009 number of received poses, I010 hand-eye on/off, I011 user coordinate ID and I012 tool ID stored with the received poses, I015 calibration accuracy (µm), I016 number of localized objects, I017 number of pickable objects, I018 vision system running/finished, I024-I029 Info data of the last received object, I031 *capture gap (used only in dynamic meshing), I032 bounding box ID, I034 running solution ID, B004 dynamic meshing on/off, P010 calibration result pose, P011-P100 Cartesian object poses (max 90)

2.2 INFORM Connection Procedures

This procedure connects the MotoPlus binary to the vision controller and disconnects it.

INFORM job

Description

PHO_CONNECT_TO_VC

INFORM job that tells the MotoPlus binary to connect to the vision controller. It first sends a disconnect request (ID 201) to close any previous session. Then it sets B000 and waits for B001.

2.3 INFORM Example List

The LS 1.5 module includes several INFORM example programs. They show how to use the requests from section 2.1 in different use cases:

INFORM example

Description

PHO_MAIN_CALIBRATION PHO_MAIN_CALIBRATION_HAND_EYE

Template for the calibration procedure. The user must start and confirm the first calibration of a vision system manually on the vision controller side. The calibration procedure needs the USER COORDINATE configuration from chapter 1.7. Teach all 9 poses that calibration needs. If PHO_CONNECT_TO_VC connects to the vision controller, each PHO_CALIB_ADD_POINT request sends the current robot pose to the vision controller. If there is no connection, you can add the robot poses manually on the vision side. Type the values of the current robot pose from the teach pendant. As a rule of thumb, the calibration error must be below 3mm. If it is higher, there is usually a systematic error (for example, the robot does not report the correct pose, or the calibration ball moved between poses). If the calibration error is below 3mm, save the calibration on the vision controller side and quit calibration.

PHO_MAIN_AUTO_RECALIBRATION

After the first calibration is successful and automatic recalibration is allowed in the vision system settings, you can run automatic recalibration from the robot. You do not need to touch the vision system. The calibration object must stay where it was during the first calibration. The calibration ball stays mounted in the same place on the flange or gripper and moves with the robot. The marker pattern stays in the same place in the cell. Sequence: PHO_CONNECT_TO_VC, PHO_STOP_SOLUTION (calibration cannot start while a solution is running), set I006 / I005, PHO_CALIB_START, 9 x (MOVJ + PHO_CALIB_ADD_POINT), PHO_CALIB_SAVE, PHO_CALIB_STOP. After PHO_CALIB_SAVE, I015 holds the calibration accuracy (µm) and P010 holds the calibration pose. Check I007 after each request.

PHO_MAIN_BASIC_LOC

Very basic example for a statically mounted scanner. It shows how to initialize a system, send a scan request, send a get poses request, receive the targets and execute the paths. The example also shows error handling: PHO_WAIT_FOR_SCAN and PHO_GET_POSES return the error value in I007 - PHO_ERROR_DATA. Before you run this INFORM job, set the Start and End positions manually in PHO_PICK_OBJECTS_LOC (Chapter 3.1).

PHO_MAIN_BASIC_LOC_HAND_EYE

Same as PHO_MAIN_BASIC_LOC, but for a hand-eye mounted scanner. The only differences are that the scanning pose is different from the static mount and that the I010 - PHO_HAND_EYE_ENABLE switch is ON.

PHO_MAIN_BASIC_LOC_MULTI_VS

Same as PHO_MAIN_BASIC_LOC, but switches between two vision systems. Integer variable I005 PHO_VS_ID is important here. Its value controls which vision system is triggered or asked for poses. The first pick in the loop uses vision system 1 and the second pick uses vision system 2.

PHO_MAIN_BASIC_LOC_SOL_SWITCH

Same as PHO_MAIN_BASIC_LOC, but shows how to use all solution switching requests. Integer variable I006 PHO_SOL_ID is important here. It defines which solution the next PHO_START_SOLUTION or PHO_CHANGE_SOLUTION request activates.

PHO_MAIN_BASIC_LOC_CHANGE_BBOX

Same as PHO_MAIN_BASIC_LOC, but shows how to use the bounding box switching request. Together with I005 PHO_VS_ID, integer variable I032 PHO_BBOX_ID is important here. It defines which bounding box the next PHO_CHANGE_BBOX request activates.

PHO_MAIN_BASIC_LOC_REUSE_SCAN

Same as PHO_MAIN_BASIC_LOC_MULTI_VS, but uses PHO_REUSE_SCAN_REQUEST_LOC instead of regular scan requests. This request is useful when the scene has not changed since the last scan, but you want to repeat localization with a different configuration (different objects, different bounding boxes or different settings). The scan for VS1 is a regular scan, and the scan for VS2 reuses the scan from VS1. Integer variable I005 PHO_VS_ID selects the vision system for reused scans in the same way as for regular vision system switching.

PHO_MAIN_LOC_MESHING_STATIC

Example of how to stitch multiple scans before localization starts. This is useful for complex scenes or large objects. This example uses the static approach: the robot stops in each scanning position and triggers/captures a scan. B004 PHO_MESH_DYNAMIC must be set to 0. PHO_CAPTURE_REQUEST_LOC waits for its own response, so you do not need PHO_WAIT_FOR_SCAN after each capture. Check I007 instead. When capturing is complete, send a regular PHO_SCAN_REQUEST_LOC to start localization. This request does not trigger a real scan. It only starts the localization process. The total number of scans must be less than 10.

PHO_MAIN_LOC_MESHING_DYNAMIC

Similar to PHO_MAIN_LOC_MESHING_STATIC, but the capturing happens while the robot moves continuously. LS combines Photoneo Instant Meshing technology with the Parallel Structured Light technique of MotionCam-3D. Important flags and variables: B004 PHO_MESH_DYNAMIC, B005 PHO_MESH_STARTED, I031 PHO_CAPTURE_GAP. This example shows how to start a capturing procedure. MotionCam-3D triggers scans with the delay set in I031 PHO_CAPTURE_GAP while the robot moves through predefined waypoints. Set B004 - PHO_MESH_DYNAMIC to TRUE before PHO_CAPTURE_REQUEST_LOC to activate dynamic meshing mode. Set I031 PHO_CAPTURE_GAP to approximately 100-500 ms to limit the scan rate, so that the system does not get too many scans (values outside 0-10000 ms are replaced by 500 ms). The robot position during the first scan defines the orientation of the final point cloud. Because of this, the Photoneo interface blocks robot motion until the MotoPlus binary sets B005 - PHO_MESH_STARTED to 1 after it receives the first scan. The flag is reset after the last scan is captured. In the dynamic case, only the last PHO_CAPTURE_REQUEST_LOC is followed by a PHO_WAIT_FOR_SCAN request. At the end of capturing, send a regular PHO_SCAN_REQUEST_LOC to start localization. This scan does not flash any light. It only starts the localization process. The scanning trajectory must be smooth, without large rotations, and the scanned area must stay in the field of view all the time so that tracking is not lost. The total number of scans must be less than 60.

2.4 INFORM Picking Procedures

This procedure picks and places all objects received from the vision controller. It is only an example of how to go through the received targets and control the robot movements. It loops I019 from 0 to I009 - 1, calculates the pose number I020 = 11 + I019 and moves to P[I020] with the approach / deapproach shifts P008 / P009. Touch up the local Start and End points in PHO_PICK_OBJECTS_LOC before you run the main program. You can copy and change this procedure if necessary.

INFORM job

Description

PHO_PICK_OBJECTS_LOC

INFORM job that picks and places the targets received from the vision controller.

2.5 BYTE Variables

This version of the LS module uses these 6 byte variables:

BYTE variable

Description

Set by

B000 PHO_CONNECT_VC

The INFORM job sets this flag to tell the MotoPlus binary to connect to the vision controller.

user

B001 PHO_CONNECTED

The MotoPlus binary sets this flag after it connects to the Action Request Server in LS. It resets the flag when the session ends.

system

B002 PHO_NEW_REQ

The request INFORM job sets this flag to tell the MotoPlus binary that the user started a new request. The MotoPlus binary resets this flag after it processes the request.

user

B003 PHO_REQ_FINISHED

The MotoPlus binary sets this flag to tell INFORM that the response to the last request has arrived. The INFORM side resets this flag immediately.

system

B004 PHO_MESH_DYNAMIC

This flag activates dynamic meshing mode. Set it to TRUE before the first PHO_CAPTURE_REQUEST_LOC request. Reset it to FALSE immediately after the robot reaches the last meshing waypoint to stop the scanning sequence. Set it to FALSE if you use capture in static mode.

user

B005 PHO_MESH_STARTED

The MotoPlus binary sets this flag to tell INFORM that the first scan of the meshing sequence has arrived. INFORM can then start the predefined capture trajectory.

system

2.6 INTEGER Variables

This version of the LS module uses these integer variables:

Variable

Description

Set by

I000 PHO_VC_IP_ADDR_1

First octet of the vision controller IP address

user

I001 PHO_VC_IP_ADDR_2

Second octet of the vision controller IP address

user

I002 PHO_VC_IP_ADDR_3

Third octet of the vision controller IP address

user

I003 PHO_VC_IP_ADDR_4

Fourth octet of the vision controller IP address

user

I004 PHO_REQ_TYPE_ID

Every request INFORM job sets this to tell MotoPlus which request to process (request ID)

system

I005 PHO_VS_ID

Vision system ID for the next request

user

I006 PHO_SOL_ID

Solution ID for the next request

user

I007 PHO_ERROR_DATA

Result of the request. See the error table for the error code descriptions

system

I008 PHO_NUM_POS_REQ

Number of poses requested by PHO_GET_POSES (the module stores a maximum of 90)

user

I009 PHO_NUM_POS_RCVD

Number of poses received by PHO_GET_POSES. The poses are in P011 to P011 + I009 - 1

system

I010 PHO_HAND_EYE_ENB

Switches between static mode (0) and hand-eye mode (1). In hand-eye mode, PHO_SCAN_REQUEST_LOC sends the current TCP pose (Tool 63, User Coordinate 1) with the request

user

I011 PHO_USER_COOR_ID

User frame number stored with each received pose (P010-P100). The poses are written in robot base coordinates, which are the same as User Coordinate 1 (PHO_ZERO_OFFSET, chapter 1.7). The examples set 1. It does not change the TCP sent to the vision controller (always User Coordinate 1)

user

I012 PHO_TOOL_ID

Tool number stored with each received pose (P010-P100). Set it to the picking tool that you move with (the examples set 0). It does not change the TCP sent to the vision controller (always Tool 63)

user

I013 PHO_CAL_USER_FRM

Reserved, not used in this version (calibration always uses User Coordinate 1)

user

I014 PHO_CAL_TOOL_FRM

Reserved, not used in this version (calibration always uses Tool 63)

user

I015 PHO_CALIB_ERROR

Calibration accuracy in micrometers, filled by PHO_CALIB_ADD_POINT and PHO_CALIB_SAVE (Info data key 10)

system

I016 PHO_NUM_OF_LOC

Number of localized objects. Filled by PHO_GET_STATUS (Info data key 12)

system

I017 PHO_NUM_PICKABLE

Number of pickable objects. Filled by PHO_GET_STATUS (Info data key 13)

system

I018 PHO_CURR_VS_STAT

Current vision system status: 1 = still running, 0 = finished. Filled by PHO_GET_STATUS (Info data key 14)

system

I019 PHO_RESERVED

Loop counter used by PHO_PICK_OBJECTS_LOC

system

I020 PHO_RESERVED

Pose number calculated by PHO_PICK_OBJECTS_LOC

system

I021 PHO_INFO_DATA_1

Reserved. Matches BPS PHO_TOOL_INV (not used in LS)

system

I022 PHO_INFO_DATA_2

Reserved. Matches BPS PHO_GRIPPING_PT_ID (not used in LS)

system

I023 PHO_INFO_DATA_3

Reserved. Matches BPS PHO_GRIPPING_PT_INV (not used in LS)

system

I024 PHO_INFO_DATA_4

X dimension of the object, mm (AI-based solutions, Info data key 4)

system

I025 PHO_INFO_DATA_5

Y dimension of the object, mm (AI-based solutions, Info data key 5)

system

I026 PHO_INFO_DATA_6

Z rotation of the object in whole degrees. The module converts the received milliradians (AI-based solutions, Info data key 6)

system

I027 PHO_INFO_DATA_7

Neural network label of the object (AI-based solutions, Info data key 7)

system

I028 PHO_INFO_DATA_8

Max Z height, mm (Info data key 8)

system

I029 PHO_INFO_DATA_9

Tilt, mrad (Info data key 9)

system

I030 PHO_INFO_DATA_10

Reserved. Not filled (Info data key 10 goes to I015)

system

I031 PHO_CAPTURE_GAP

Delay in milliseconds between scans in Instant Meshing mode

user

I032 PHO_BBOX_ID

Bounding box ID for the next request

user

I034 PHO_RUNNING_SOLUTION

ID of the running solution (filled by PHO_GET_RUNNING_SOLUTION, Info data key 11)

system

2.7 POSITION Variables

P000 - P007 are free for customer use.

P008 and P009 are CART poses for the approach and deapproach offsets in the PHO_PICK_OBJECTS_LOC routine. Set only the Z value in these variables, so that the SFTON shift operation works correctly. For example, the approach pose shown below sets the approach point 100mm above the target pose when you use it within SFTON- SFTOF.

Figure 33
Figure 34

P010 is reserved for the save calibration request. It holds the calibration pose after automatic recalibration.

P011 - P100 are reserved for the Cartesian poses received from the vision controller (maximum 90 poses; I009 shows how many were received). The poses are Cartesian (robot base coordinates) and carry the user frame I011 and the tool I012.

This version of the LS module uses these position variables:

Variable

Representation

Description

Set by

P000

Free for customer use

user

…

Free for customer use

user

P007

Free for customer use

user

P008

CART

Approach pose for PHO_PICK_OBJECTS_LOC (you can change the code and use it)

user

P009

CART

Deapproach pose for PHO_PICK_OBJECTS_LOC (you can change the code and use it)

user

P010

CART

Calibration pose from automatic recalibration, returned by the PHO_CALIB_SAVE request. This pose is useful for checks or for reteaching points, especially in hand-eye applications.

system

P011

CART

Cartesian result received from the vision controller

system

…

CART

Cartesian result received from the vision controller

system

P100

CART

Cartesian result received from the vision controller

system

3. Runtime

When the solution is configured, all vision systems are calibrated and all previous steps are done, complete the final steps on the robot side. Then run the MAIN program on the robot.

3.1 Teaching Start and End Poses in PHO_PICK_OBJECTS_LOC

The Start and End poses in PHO_PICK_OBJECTS_LOC are the first and last waypoints of each pick. Touch them up before you run the main picking procedure.

To touch up the point, move the program pointer to the MOVJ line and press Servo On Ready. Jog the robot to the Start position. Then press Modify and Enter to confirm the new pose value.

Figure 35

Repeat the same steps for the End pose.

Figure 36

3.2 Gripper Commands

An LS solution does not control the gripper. Use regular DOUT or other IO commands to control the gripper at the Grasp and Drop points.

3.3 Touching Up Local MOVJ Positions

If you use the PHO_MAIN templates, scroll through the program and find the MOVJ commands. Make sure that the robot is in the correct position during scanning: outside the scanning volume for statically mounted sensors, or above the bin for hand-eye mounted sensors.

Figure 37

3.4 Runtime Prerequisites

Do a final check before you run the picking program from the robot side.

Make sure that:

  • The solution is configured correctly on the vision controller side.

  • The network setup on the robot side is complete and ping works in both directions.

  • All vision systems in the solution are calibrated.

  • The Start and End poses in PHO_PICK_OBJECTS_LOC are touched up.

  • All local poses in the MAIN job that you want to run are touched up correctly.

  • The gripper procedures are ready and work.

3.5 Running the Main INFORM Job

Deploy your solution. If the communication is not established yet, the Action Request Client (robot) status on the Deployment page is DISCONNECTED.

Figure 38

Note

We strongly recommend that you run the program with TEST START first, before you run it in Auto mode.

Use the Select button to go to the program that you want to run, in this case the PHO_MAIN_BASIC_LOC.JBI template:

Figure 39

Hold the Interlock and Test Start keys to test start the program. If the connection is established correctly, the Action Request Client status changes to CONNECTED. The sensor then captures the first scan and localization starts.

Figure 40

If there is a pickable object in the scene and the robot controller has received the poses, the robot starts to move towards the first object. You can check P011 and higher to see if these position variables contain Cartesian poses.

Figure 41

If everything looks correct, continue to move the robot towards the first target and check that the path is correct. If the robot stops too far from the object or pushes the object too deep, adjust the origin offset on the Picked object page, or change the TCP configuration on the robot side.

4. Error Handling

If an error occurs during a request, the error value is stored in the variable I007 PHO_ERROR_DATA (0 = success). All PHO_MAIN templates show basic error handling after PHO_WAIT_FOR_SCAN and PHO_GET_POSES. You can add more specific error handling if you need it. Error codes lists the error codes with their descriptions and troubleshooting.

Example of error handling in INFORM after the PHO_GET_POSES request:

Figure 42

Communication errors - if sending or receiving fails, the module closes the connection and sets I007 to 3 (communication failure) or 4 (bad data). It also sets B003 so that the waiting job continues, and clears B001 PHO_CONNECTED. The examples check B001 after each request and jump back to PHO_CONNECT_TO_VC.

4.1 Error Codes

Error codes defined in the module (PhoClient.h). I007 can also hold any other code sent by the vision controller.

Name

I007 value

PHO_REQ_OK

0

SERVICE_ERR

1

UNKNOW_REQ

2

PHO_COMMUNICATION_FAILURE

3

PHO_BAD_DATA

4

PHO_INVALID_SOLUTION_ID

450

PHO_ANOTHER_SOLUTION_RUNNING

451

PHO_SOLUTION_START_ERROR

452

PHO_SOLUTION_NOT_RUNNING

453

PHO_SOLUTION_STOP_ERROR

454

PHO_SOLUTION_INCOMPLETE

455

PHO_INVALID_BRAND_ID

457

PHO_SOL_ALREADY_RUNNING

458

PHO_SOLUTION_FORBID

459

PHO_INVALID_VS

460

PHO_CALIBRATION_ALREADY_RUNNING

461

PHO_CALIBRATION_NOT_RUNNING

462

PHO_CALIBRATION_STOP_ERROR

463

PHO_CALIBRATION_START_ERROR

464

PHO_CALIBRATION_DISABLED

465

PHO_CALIBRATION_NOT_ENOUGH_POINTS

466

PHO_NOT_ENOUGH_ACCURACY (calibration accuracy above the allowed threshold)

467

PHO_SCANNER_NOT_AVAILABLE

468

PHO_CALIB_FORBID

469

PHO_VS_NOT_FOUND

500

PHO_EMPTY_SCENE

501

PHO_NO_OBJ_RUN (no object found, localization still running)

502

PHO_NO_OBJ_STOP (no object found, localization stopped)

503

PHO_REJECT_RUN (all objects rejected, localization still running)

504

PHO_REJECT_STOP (all objects rejected, localization stopped)

505

4.2 Controller Alarms

The MotoPlus module raises these user alarms on the controller:

Alarm

Meaning

8000

Unknown request ID in I004

8001

Incorrect vision controller IP address in I000-I003

8002

Cannot create a socket

8003

Cannot connect to the vision controller (port 11003)

8004

Cannot send the brand ID to the vision controller

8011

The response does not belong to the sent request (request ID mismatch)

8013 / 8015

Unexpected or unknown operation type in the response

8014

Cannot receive or store the object pose or calibration pose

8016

The operation does not match the request

8021

Cannot read or write a variable (B, I or P)

8024

Cannot read a flag while waiting

8035

Cannot read the TCP position (for example, User Coordinate 1 is not defined)

5. Info Data

Info data are extra values that the vision controller sends with a response (see Info data). The module writes each value into an integer variable. Keys 1-3 are used only by Bin Picking Studio (BPS), so I021-I023 stay reserved.

Info data key

Variable

Unit in robot

4 Dimension X

I024

mm

5 Dimension Y

I025

mm

6 Rotation Z

I026

whole degrees (converted from mrad)

7 Neural network label

I027

integer

8 Max Z height

I028

mm

9 Tilt

I029

mrad

10 Calibration accuracy

I015

µm

11 Running solution ID

I034

integer

12 Number of localized objects

I016

integer

13 Number of ready objects

I017

integer

14 Processing state

I018

0 / 1

Keys 4-9 come with PHO_GET_POSES. Key 10 comes with PHO_CALIB_ADD_POINT and PHO_CALIB_SAVE, key 11 with PHO_GET_RUNNING_SOLUTION, and keys 12-14 with PHO_GET_STATUS. When several poses are received, I024-I029 hold the values of the last received object.

6. Version and Brand ID

Item

Value

Robot module version

1.5.0

Brand ID sent to the vision controller

YASKAWA/L/1.5.0XXXXXXXXX

Action Request port (the robot connects to the vision controller)

11003

Robot State Server port

none (the LS module has no Robot State Server)

7. Migration

See Migration from LS 1.4.x to LS 1.5.x for the changes between Robot module versions. In short: Info data are no longer written to string variables. They go to the integer variables listed in chapter 5, and the running solution ID moved to I034.